package com.linsen.core.log.model;

import com.linsen.core.common.enums.LoginEndpointType;
import com.linsen.core.common.enums.ModuleService;
import com.linsen.core.log.enums.LogType;
import com.linsen.core.log.enums.LoginType;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 日志数据
 *
 * @author zhaoyong
 * @date 2023/3/14
 */
@Data
@Accessors(chain = true)
public class Log implements Serializable {

    /**
     * 日志类型
     */
    private LogType logType;
    /**
     * 登录类型
     */
    private LoginType loginType;
    /**
     * 终端类型
     */
    private LoginEndpointType endpointType;
    /**
     * 跟踪ID
     */
    private String traceId;
    /**
     * 服务模块
     */
    private ModuleService moduleService;
    /**
     * 日志标题
     */
    private String title;
    /**
     * 响应结果
     */
    private String operation;
    /**
     * 执行方法
     */
    private String method;

    /**
     * 请求路径
     */
    private String url;
    /**
     * 参数
     */
    private String params;
    /**
     * ip地址
     */
    private String ip;
    /**
     * 耗时
     */
    private Long executeTime;
    /**
     * 异常信息
     */
    private String exception;
    /** 用户代理 */
    private String userAgent;
    /**
     * 创建人userid
     */
    private String createBy;
    /**
     * 创建人username
     */
    private String createByName;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
}
